#!/usr/bin/env python
# -*- coding: utf-8 -*-

# @Time     :2020/07/24
# @Author   :Changshu
# @File     :practice_1.py


# 给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出和为目标值的那 两个 整数，并返回他们的数组下标。
#
# 你可以假设每种输入只会对应一个答案。但是，数组中同一个元素不能使用两遍

# def towSum(nums:list,target:int)->list:
# 	res=[]
# 	i=0
# 	length=len(nums)
# 	while(i<length):
# 		j=i+1
# 		r=target-nums[i]
# 		while(j<length):
# 			if nums[j]==r:
# 				res.append(i)
# 				res.append(j)
# 				return res
# 			j=j+1
# 		i+=1
#
# 	return res

def towSum(nums:list,target:int)->list:
	hashmap={}
	for ind,num in enumerate(nums):
		hashmap[num]=ind
	for i,num in enumerate(nums):
		j=hashmap.get(target-num)
		if j is not None and j!=i:
			return [i,j]
	else:
		return []

if __name__=='__main__':
	nums=[2,7,11,15,4,8,16,9]
	target=9
	print(towSum(nums,target))